import axios from "axios"
// import { Message } from "element-ui"
import qs from "qs"

// axios.defaults.timeout = 60000;
const instance = axios.create({
  timeout: 60000,
});
// 请求拦截
instance.interceptors.request.use(config => {
  // TODO 先默认写死
  // if(process.env.NODE_ENV !== "production"){
  //   // config.headers['Authorization'] = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC95bHQueWwxMDAxLmNvbSIsImF1ZCI6Imh0dHA6XC9cL3lsdC55bDEwMDEuY29tIiwiYm9keSI6eyJteV91cmwiOiJ3d3cuam9iMTAwMS5jb20iLCJjb21wYW55TG9naW5XYXlfc2Vzc2lvbiI6IjEiLCJ1bmFtZSI6InN6amlzaHVidTA1NiIsImpvYjEwMDFFbnRlcklkIjoiY20xMjkzNTI3MzgyMzA0IiwiQ3JuZCI6IjUiLCJjb21wYW55QUJDIjoiY2EwZmQ4M2FmYmYzZTU2OTJiMjA5OWM2M2NlNTc2ODFjMTIyOTA3OSIsImNvbXBhbnlMZ2dpbldheV9jaGVjayI6IjI4NGE4OGQxYzNjNWIzODBhMjFjNjg0MzRiM2U4Yjc0YjhlZDE0NTMiLCJoYXNfZGVmYXVsdF9iaW5kIjoiMCIsImRlZmF1bHRfYmluZF9pbmZvIjp7ImluYW1lIjoiIn0sInN0b3BkYXRlX3Nlc3Npb24iOiIwIiwidHJhZGVpZCI6MTAwMH19.LfH93i4E8eEQFdedWhf6Co6kpweriXtIqmtNRhy3eEA'
  //   return config
  // }else{
  //   // let token = '';
  //   // if (localStorage.getItem('loginInfo')) {
  //   //     token = JSON.parse(localStorage.getItem('loginInfo')).token;
  //   //   }
  //   //   config.params = {
  //   //       // temp_time: new Date().getTime(), // 设置请求头携带时间戳
  //   //       ...config.params,
  //   //   }
  //   //   if (token) {
  //   //       config.headers['Authorization'] = token;
  //   //   }
  //     return config;
  // }
  // config.url+="?token=dXNlciUzRGxpdmVfdmlkZW8lMjZwd2QlM0RsaXZlX3ZpZGVvX2RhdGFfam9iMTAwMQ=="
  // console.log(111,config);
  return config;

}, err => {
  return Promise.reject(err);
})

instance.interceptors.response.use((response) => {
  const res = response.data
  // 如果服务器的状态码不为200，说明请求异常，应给出错误提示。
  if (res.code != 200) {
    // Message({
    //   message: res.status_desc,
    //   type: 'error',
    //   duration: 2 * 1000
    // })
    return Promise.reject(new Error(res.status_desc || 'Error'))
  } else {
    return res
  }
  // return Promise.resolve(res.data)
}, (err) => {
  // Message({
  //   message: err.message,
  //   type: 'error',
  //   duration: 2 * 1000
  // })
  return Promise.reject(err)
})

// 响应拦截
let requestJava = {
  get: function(url, params = {}) {
    return new Promise((resolve, reject) => {
      instance({
        url,
        method: 'get',
        params,
        paramsSerializer: function(params) {
          return qs.stringify(params)
        }
      }).then(response => {
        resolve(response)
      }).catch(error => {
        reject(error)
      })
    })
  },
  post: function(url, data) { // 用于application/json
    return new Promise((resolve, reject) => {
      instance({
        url,
        method: 'post',
        data,
        transformRequest: function(data) {
          return JSON.stringify(data)
        },
        headers: {
          "Content-Type": "application/json;charset=UTF-8",
        }
      }).then(response => {
        resolve(response)
      }).catch(error => {
        reject(error)
      })
    })
  },
  post1: function(url, data) { // 用于application/x-www-form-urlencode
    return new Promise((resolve, reject) => {
      instance({
        url,
        method: 'post',
        data,
        transformRequest: function(data) {
          return qs.stringify(data)
        },
      }).then(response => {
        resolve(response)
      }).catch(error => {
        reject(error)
      })
    })
  }
}

export default requestJava